1. Field of the Invention
The invention relates generally to the field of crystallography and specifically to the field of analysis of powder diffraction data.
2. Description of the Related Art
Crystal structure determination from powder diffraction data is an active field of current research because of the difficulties involved in growing single crystals of many compounds. Two key steps of the structure determination process are known as indexing and structure solution. In indexing, unit cell parameters are derived from the reflection positions, whereas structure solution focuses on the determination of atomic coordinates from the reflection intensities. With the recent development of direct space algorithms for structure solution, indexing has emerged as a new important bottleneck for crystal structure determination from powder diffraction data.
Most indexing algorithms take reflection positions as input. Prior to indexing, these peak positions have to be extracted from the powder diffraction pattern, which extraction inevitably results in a loss of information, particularly in the case of strong peak overlap. It may, therefore, seem desirable to use full-profile-comparison instead of comparing extracted and calculated peak positions. Full-profile-comparison, however, is computationally demanding, and a complete unit cell search based on full-profile comparison would require huge amounts of CPU resources even for today's standards.
Various strategies have been implemented in a variety of programs to solve the indexing problem. The three indexing programs most commonly in use, ITO (Visser 1969), TREOR (Eriksson & Westdahl, 1985) and DICVOL (Boultif & Louër, 1991), each adopt rather different approaches.
ITO first establishes a list of possible zones in reciprocal space. In a second step, zones with a common axis are combined and the angle between them is determined. The program FJZN6 (Shirley, 1999) is a modified version of the ITO zone-indexing program. TREOR belongs to the category of trial & error algorithms, together with KOHL (Kohlbeck & Hörl, 1978), TAUP (Taupin, 1973) and the more recent implementation n-TREOR (Altomare et al., 2000). Trial & error algorithms tentatively assign hkl indices to as many low angle peaks as there are unknown lattice parameters. Many different peak selections and assignments of hkl indices are tried, and for each choice a trial cell is calculated using a simple matrix inversion, or other equivalent methods. The reflections belonging to the trial cell are then compared to the full list of experimentally observed peak positions. The search is carried out for each crystal system separately.
A completely different approach, known as a successive dichotomy method, is used by DICVOL. For each crystal system, the space of possible unit cells is divided into small volume elements that are searched one by one in the order of increasing cell volume. Since each volume element corresponds to a range of unit cell parameters, a range of possible positions can be calculated for each reflection. These peak ranges are then compared to the experimentally observed peak positions, taking into account experimental errors. If one or more of the experimentally observed peaks are not covered by any of the calculated ranges, the entire volume element is rejected. Otherwise, the volume element is cut into smaller sub-volumes and the whole procedure is repeated. After a certain number of recursions, the cell corresponding to the remaining volume element is accepted as a potential indexing solution. In the programs LZON and LOSHFZRF (Shirley & Louër, 1978), the successive dichotomy method is combined with a grid search technique.
The eight indexing programs described above have fairly different strengths and weaknesses. It is not uncommon that some of them succeed in solving a given problem, while others fail. To increase the overall chance of success, indexing with all eight algorithms is carried out automatically by the CRYSFIRE suite (Shirley, 1999). While this approach certainly has its merits, it is by no means equivalent to an exhaustive and systematic search of the space of possible unit cells.
A new approach has recently been described (Kariuki et al., 1999) that uses a genetic algorithm in conjunction with full-profile comparison. As has been pointed out above, a major drawback of full-profile comparison is the computational cost involved, even if the profile function is first fitted to a couple of isolated low angle peaks and then kept constant throughout the simulation. Additional difficulties occur in cases where the profile parameters vary significantly over the range of the diffraction pattern due to particle size broadening, lattice strain broadening or experimental factors.
Despite past efforts to solve the indexing problem, the failure rate of the most commonly used indexing algorithms is fairly high, and it is important to understand the reasons why existing indexing algorithms frequently fail. Among the more obvious reasons is zero-point shift, a constant offset of the experimentally observed peak positions. If the zero-point shift is too large, it needs to be taken into account explicitly or indexing is impossible. Some of the programs described above address this problem by using an external loop over different values of the zero-point shift.
Another reason for failure is the presence of impurity peaks, which are reflections that cannot be attributed to the unit cell of the main crystalline phase and, therefore, remain unindexed. The robustness with respect to impurity peaks is quite different for the various indexing algorithms. For example, a single impurity peak is sufficient in most cases to make indexing with DICVOL impossible.
In some cases, indexing fails because of restrictions on the covered search space. For instance, many indexing algorithms stop once a solution is found that has a figure of merit, a measuring criteria describing the quality of the solution, above a certain threshold and the correct solution may never be reached. Another example is by DICVOL's use of default ranges for the unit cell volume and the unit cell lengths and angles. If the correct unit cell falls outside these ranges, which cannot be known beforehand, the default settings need to be changed.
A more subtle reason for failure is related to the presence of a dominant zone. In the case of flat unit cells, all reflections up to a certain 2-theta value or down to a certain d-spacing belong to a single zone in reciprocal space. In extreme cases, only reflections belonging to the dominant zone may be selected for indexing, and it is impossible to find the correct unit cell if the presence of a dominant zone is not recognized and taken into account.
Finally, there is one more reason that is rarely addressed. Due to strong peak overlap, preferred orientation or poor statistics, a high ratio of reflections may not be observed experimentally and accurate peak positions for the observed peaks may be difficult to obtain. In such cases, which occur rather frequently in an industrial working environment, the correct unit cell is difficult to distinguish from a large number of incorrect solutions with similar figures of merit.